View Javadoc
1 package jrre.unittests; 2 3 import junit.framework.*; 4 import jrre.*; 5 import jrre.instructionset.*; 6 import jrre.types.*; 7 import jrre.unittests.datastructures.*; 8 9 import java.io.*; 10 11 public class ObjectsTest extends TestCase { 12 13 public void testArrayAverage(){ 14 15 System.out.println("\nS T A R T I N G A R R A Y A V E R A G E T E S T:\n"); 16 17 JRRERunner runtime = new JRRERunner(); 18 runtime.loadClass("target/test-classes/jrre/unittests/datastructures/ArrayManipulations"); 19 20 Type [] elementValues = new PrimitiveType[10]; 21 22 int value = 0; 23 int correctResult = 0; 24 for(int i=0;i < elementValues.length;i++){ 25 26 value = elementValues.length-i; 27 System.out.println("\tarray["+i+"] = "+value); 28 29 elementValues[i] = new PrimitiveType(value); 30 correctResult += value; 31 } 32 correctResult = correctResult / elementValues.length; 33 34 35 ArrayInstance arrayParameter = new ArrayInstance(1, elementValues.length); 36 arrayParameter.setValues(elementValues); 37 38 Type [] parameters = new Type[] { new ReferenceType(arrayParameter) }; 39 PrimitiveType result = (PrimitiveType) runtime.callMethod("average([I)I", parameters); 40 41 System.out.println("\nAverage value in array: "+result.getValue()); 42 Assert.assertTrue("Testing that calling average(int [] data) == "+correctResult, 43 result.getValue() == correctResult); 44 } 45 46 public void NOtestArrayQuickSort(){ 47 48 System.out.println("\nS T A R T I N G Q U I C K S O R T T E S T:\n"); 49 50 JRRERunner runtime = new JRRERunner(); 51 runtime.loadClass("target/test-classes/jrre/unittests/datastructures/ArrayManipulations"); 52 53 Type [] elementValues = new PrimitiveType[20]; 54 55 int value = 0; 56 int correctResult = 0; 57 java.util.Random randomGenerator = new java.util.Random(); 58 for(int i=0;i < elementValues.length;i++){ 59 60 value = randomGenerator.nextInt(50); 61 elementValues[i] = new PrimitiveType(value); 62 correctResult += value; 63 } 64 correctResult = correctResult / elementValues.length; 65 66 ArrayInstance arrayParameter = new ArrayInstance(1, elementValues.length); 67 arrayParameter.setValues(elementValues); 68 69 Type [] parameters = new Type[] { new ReferenceType(arrayParameter) }; 70 ReferenceType result = (ReferenceType) runtime.callMethod("sortArray([I)[I", parameters); 71 72 ArrayInstance resultArray = (ArrayInstance)result.getValue(); 73 74 // Verify that the array is sorted. 75 boolean passed = true; 76 for(int i=0;i < resultArray.getSize()-1;i++){ 77 78 int thisValue = ((PrimitiveType)resultArray.getElement(i)).getValue(); 79 int nextValue = ((PrimitiveType)resultArray.getElement(i+1)).getValue(); 80 81 if(thisValue > nextValue) 82 passed = false; 83 } 84 85 Assert.assertTrue("Testing that the array is sorted after quicksort algorithm.", 86 passed); 87 } 88 89 public void NOtestLinkedList(){ 90 91 System.out.println("\nS T A R T I N G L I N K E D L I S T T E S T:\n"); 92 93 JRRERunner runtime = new JRRERunner(); 94 95 // Load class containing factorial method. 96 runtime.loadClass("target/test-classes/jrre/unittests/datastructures/LinkedList"); 97 98 Type [] elementValues = { new PrimitiveType(2), 99 new PrimitiveType(9), 100 new PrimitiveType(3), 101 new PrimitiveType(25), 102 new PrimitiveType(11)}; 103 104 ArrayInstance arrayParameter = new ArrayInstance(1, elementValues.length); 105 arrayParameter.setValues(elementValues); 106 107 Type [] parameters = new Type[] { new ReferenceType(arrayParameter) }; 108 PrimitiveType result = (PrimitiveType) runtime.callMethod("fillList([I)V", parameters); 109 110 /* 111 // Build test case input values 112 int [] [] testInput = {{ 4, 2}, 113 { 2, 2}, 114 { 6, 3}, 115 { 400, 225}, 116 { 121, 11}}; 117 118 int [] results = {2, 119 2, 120 3, 121 25, 122 11 123 }; 124 int resultsIndex = 0; 125 126 for(int i=0;i < testInput.length;i++){ 127 128 int parameterOne = testInput[i][0]; 129 int parameterTwo = testInput[i][1]; 130 int correctResult = results[resultsIndex++]; 131 132 // Build parameters for method call. 133 Type [] parameters = new Type[] { new PrimitiveType(parameterOne), new PrimitiveType(parameterTwo) }; 134 135 // Call method and get the top of the operand stack 136 // after it returns (its return value). 137 PrimitiveType result = (PrimitiveType) runtime.callMethod("euclidsGCD(II)I", parameters); 138 139 // Check that the result is correct. 140 Assert.assertTrue("Testing that euclidsGCD("+parameterOne+", "+parameterTwo+") == "+correctResult, 141 result.getValue() == correctResult); 142 143 System.out.println("euclidsGCD("+parameterOne+", "+parameterTwo+") returned: "+result.getValue()); 144 } 145 146 */ 147 } 148 149 public void setUp(){ 150 151 } 152 153 public void tearDown(){ 154 155 } 156 157 } 158

This page was automatically generated by Maven